<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>单独测试bind</title>
</head>
<body>
<script type="text/javascript">
    // 自己造的bind为了支持不同浏览器,因为有些浏览器不支持原生bind
    Function.prototype.bind = function(context){
        // slice() 方法返回一个新的数组对象，这一对象是一个由 begin 和 end 决定的原数组的浅拷贝（包括 begin，不包括end）。原始数组不会被改变。
        var args = Array.prototype.slice(arguments, 1);
        // alert(args);
            var F = function(){},
            self = this,
            bound = function(){
                var innerArgs = Array.prototype.slice.call(arguments);
                var finalArgs = args.concat(innerArgs);
                return self.apply((this instanceof F ? this : context), finalArgs);
            };

        F.prototype = self.prototype;
        bound.prototype = new F();
        return bound;
    };
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//发现自己造的bind在下面这里没有屌用
    var altwrite = document.write;
    altwrite.bind(document)("hello")

</script>
</body>
</html>